package com.p04.homework;

public class Dog {

    public int id;

    public String name;

    public String sex="雄性";

    //当没有构造函数（构造器）时，java编译器会自动为我们创建一个无参数的构造器
    /*
      构造函数: 它是一个特殊的方法
         该方法 无返回 类型 方法名必须和类同名
     */

    //无参构造
    public  Dog(){
        System.out.println("创建了一个狗");
    }

    /**
     * 注意点：
     *
     *当书写了有参构造器后，无参构造器就会被覆盖掉
     * 一旦书写了有参构造函数，请记得一定要重新书写一个无参构造
     *
     */


    //构造器的主要作用就是帮助我们更好去初始化该对象的数据
     public Dog(int id,String name,String sex){
         //当调用当前构造函数时 this() 必须在第一句（***）
         //this(参数列表) 调用该类的某个构造函数
         this(id,name);
         System.out.println("有参构造被调用了");

        /*this.id = id;
        this.name =name;*/
         //调用当前的构造函数
        this.sex = sex;
     }

    public Dog(int id,String name){
        System.out.println("有参构造2被调用了");
        this.id = id;
        this.name =name;
    }

    public void test1(){
        System.out.println("test1");
        //调用当前对象的的test2的方法
        this.test2();
    }

    public  void test2(){
        System.out.println("test2");
        this.test3("hello");
    }

    public  void test3(String name){
        System.out.println("test3===>"+name);
    }

}
